package com.yc.i18n;

import java.text.DateFormat;
import java.text.NumberFormat;
import java.text.ParseException;
import java.util.Date;
import java.util.Locale;
import java.util.ResourceBundle;

public class Test1 {
	
	/**
	 * 本地环境
	 */
	public void m1() {
		System.out.println("----------Default------Locale-----------------");
		Locale locale = Locale.getDefault();//获取默认的本地环境
		System.out.println(locale.getCountry());//CN
		System.out.println(locale.getDisplayCountry());//中国
		System.out.println(locale.getLanguage());//zh
		System.out.println(locale.getDisplayLanguage());//中文
		System.out.println("--------------US-------Locale------------");
		locale = Locale.US;//指定本地环境
		System.out.println(locale.getCountry());//US
		System.out.println(locale.getDisplayCountry());//美国
		System.out.println(locale.getLanguage());//en
		System.out.println(locale.getDisplayLanguage());//英文
	}
	
	/**
	 * 根据本地环境获取资源
	 */
	public void m2() {
		Locale locale = Locale.getDefault();
		ResourceBundle bundle = ResourceBundle.getBundle("i18n/msg", locale);// i18n.msg也可以
		System.out.println(bundle.getString("name"));
		System.out.println(bundle.getString("pwd"));
		
		locale = Locale.US;
		bundle = ResourceBundle.getBundle("i18n/msg", Locale.US);// i18n.msg也可以
		System.out.println(bundle.getString("name"));
		System.out.println(bundle.getString("pwd"));
	}
	
	/**
	 * 货币
	 */
	public void m3() {
		// 模拟语言环境
        Locale locale = Locale.CHINA;
        // 数据准备
        double number = 100;
        // 工具类
        NumberFormat nf = NumberFormat.getCurrencyInstance(locale);
        // 国际化货币
        String str = nf.format(number);
        // 输出
        System.out.println(str);//￥100.00
	}
	
	/**
	 * 货币格式
	 * @throws ParseException
	 */
	public void m4() throws ParseException {
		String str = "$100";
        int num = 10;
         
        // 1. 分析str值是哪一国家的货币
        Locale locale = Locale.US;
         
        // 2. 国际化工具类
        NumberFormat nf = NumberFormat.getCurrencyInstance(locale);
         
        // 3. 解析str
        Number number = nf.parse(str);
         
        //4.进行计算
        int value = number.intValue() * num;
 
        //5.格式化输出
        str = nf.format(value);
        System.out.println(str);//$1,000.00
	}
	
	/**
	 * 单纯的数字显示方式转换
	 */
	public void m5() {
		Locale locale = Locale.CHINA;
        NumberFormat nf = NumberFormat.getNumberInstance(locale);
        String str = nf.format(1000000000);
        System.out.println(str);//1,000,000,000
	}
	
	/**
	 * 小数转成百分数
	 */
	public void m6() {
		Locale locale = Locale.CHINA;
        NumberFormat nf = NumberFormat.getPercentInstance(locale);
        String str = nf.format(0.325);
        System.out.println(str);
	}
	
	/**
	 * 日期格式转换
	 */
	public void m7() {
		int dateStyle = DateFormat.FULL;
        int timeStyle = DateFormat.FULL;
//        Locale locale = Locale.CHINA;
        Locale locale = Locale.US;
        DateFormat df = DateFormat.getDateTimeInstance(dateStyle, timeStyle, locale);
        String date = df.format(new Date());
        System.out.println(date);//2020年9月15日 星期二 下午03时21分50秒 CST
	}
	
	
	

	public static void main(String[] args) throws ParseException {
		Test1 t = new Test1();
//		t.m1();
//		t.m2();
//		t.m3();
//		t.m4();
//		t.m5();
//		t.m6();
		t.m7();

	}

}
